Image compression makes digital cameras and image communication in general viable. Image compression also makes the effects of errors much greater. Instead of a one bit error changing only one pixel in the image, a one bit error in a compressed file can cause loss of synchronization and thus destroy the usefulness of all data past the location of the error.
Compression algorithms sometimes have special design provisions to deal with errors. The G3 fax standard “restarts” every few lines, so an error could effect at most a few lines. JPEG has “restart markers” which allow the bitstream to be resynchronized. JPEG 2000 has a variety of options to increase the ability to detect errors and thus limit the propagation effects.
Special features of the compression standard to deal with errors are often not used. Use of additional redundancy to allow error detection or correction tends to increase the bitrate, which many find undesirable. Further, most transport protocols effectively provide an error free channel by detecting errors and requesting retransmission. The error protection is thus wasted.
Unfortunately errors still do occur. JPEG images with large errors typically have an appearance as shown in FIG. 1, represented schematically in FIG. 2. The first region before any errors have occurred in the codestream appears correctly. Then the “Error Region” begins which may be a solid color band, or an area with high amounts of visible noise. Eventually a good decoder resynchronizes with the codestream and produces recognizable image data as in Region 2. Unfortunately, although the decoder resynchronized the beginning of blocks in the codestream, the position in the decoded image is wrong. This leads to a large horizontal line where the 2nd region has been shifted from the first region. It also leads to a vertical line artifact where the right edge of the picture is. Because Region 2 is shifted the left and right edges of the correct image are displayed next to each other in the visible portion of the image. In addition to the artifacts caused by the shifting of the image, the color of the image is typically wrong in Region 2. It is either brighter or darker than equivalent colors in Region 1, and there is usually some color shift as well. Images with more than one large error simply have an additional error region, and an additional visible horizontal and vertical line and intensity shift. This is shown in FIG. 3. In this case, the second error region wraps around the edge of the displayed image.
Today, most “JPEG” images contain more information than the JPEG codestreams. The original JPEG committee did not define a complete “file format,” and thus a couple of variants have developed. “JFIF” and “Exif” are the two most common types of JPEG files. Both allow definition of a color space, storage of meta-data, and storage of an icon.
The Design Rule for Camera File System (DCF) is a standard that goes even further by requiring JPEG files to be in Exif format and by requiring a 160 by 120 icon. See Japan Electronic Industry Development Association (JEIDA), Design Rule for Camera File System (DCF), adopted December 1998. Also see Japan Electronic Industry Development Association (JEIDA), Digital Still Camera Image File Format Standard (Exchangeable image file format for Digital Still Cameras: Exif), Version 2.1, Jun. 12, 1998.
There has been a lot of work on error detection, correction, and or concealment with JPEG and MPEG. Some of the work with JPEG images includes the use of differences between lines (along the 8×8 block boundary) to detect errors. Prior art JPEG methods have been described that use differences between rows of blocks to determine the correct DC values, while the work with MPEG sequences includes filling in regions with errors using previous frames. Also MPEG and JPEG share the use of 8×8 block DCTs and Huffman coding. A summary of MPEG methods appears in Yao Wang and Qin-Fan Zhu, “Error Control and Concealment for Video Communications: A Review,” Proceedings of the IEEE, May 1998 Vol. 86, No. 5, pp. 974-997.
All work with JPEG 2000 has involved using the error resilience tools designed in the standard. There has also been work using the error resilience tools designed into the JPEG 2000 Standard.